package com.xgk.boot.module.core.controller.admin.customer.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.xgk.boot.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Size;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 客户地址信息实体类
 * 对应数据库表：customer_address
 */
@Schema(description = "管理后台 - 客户分页列表 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
public class CustomerAddressReqVO  extends PageParam {

    /**
     * 客户id
     */
    private Long customerId;

    /**
     * 客户code
     */
    private String customerCode;


    /**
     * 名称
     */
    @Schema(description = "发货人姓名",  example = "Json Bo")
    @Size(max = 100, message = "客户编码不超过  100 个字符")
    private String shipperName;

    /**
     * 地址编码（自定义-不重复）
     */
    @Schema(description = "发货地址编码",  example = "JA_001")
    @Size(max = 30, message = "发货地址编码不超过 30 个字符")
    private String sn;

    /**
     * 国家--选择
     */
    @Schema(description = "国家",  example = "US[美国]")
    @Size(max = 45, message = "国家不超过 45 个字符")
    private String country;

    /**
     * 邮编
     */
    @Schema(description = "邮编",  example = "051267")
    @Size(max = 30, message = "邮编不超过 30 个字符")
    private String postcode;

    /**
     * 州/区域
     */
    @Schema(description = "州",  example = "LZ")
    @Size(max = 90, message = "州不超过 90 个字符")
    private String state;

    /**
     * 城市
     */
    @Schema(description = "城市",  example = "Zion")
    @Size(max = 90, message = "城市不超过 90 个字符")
    private String city;

    /**
     * 地址1
     */
    @Schema(description = "地址",  example = "LZ")
    @Size(max = 90, message = "地址1不超过 90 个字符")
    private String streetAddress1;
    
    /**
     * 电话
     */
    @Schema(description = "电话",  example = "15611109011")
    @Size(max = 30, message = "电话不超过 30 个字符")
    private String telephone;
}
